package com.anan.controller;

import com.anan.constants.Constants;
import com.anan.pojo.domain.AdminDO;
import com.anan.pojo.dto.AdminDTO;
import com.anan.pojo.dto.UdOpusAdminStatusDTO;
import com.anan.pojo.dto.UdStatusDTO;
import com.anan.service.AdminService;
import com.anan.utils.ComResult;
import com.fasterxml.jackson.databind.util.JSONPObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * @author anan
 * @date 2023/05/09/11:29
 **/
@RestController
@Slf4j
@RequestMapping("salvage/admin")
public class AdminController {
    @Resource
    AdminService adminService;

    @PostMapping("/login")
    public ComResult login(@RequestBody AdminDTO adminDTO) {
        ComResult comResult = new ComResult();
        if (null == adminDTO || null == adminDTO.getPassword() || null == adminDTO.getUsername()) {
            comResult.setCode(Constants.RET_CODE.FAILED);
            comResult.setMessage("请输入用户名或密码！");
        }

        AdminDO adminDO = adminService.login(adminDTO);
        if (null != adminDO) {
            comResult.setData(adminDO);
            comResult.setCode(Constants.RET_CODE.SUCCESS);
            comResult.setMessage("欢迎使用！");
        } else {
            comResult.setCode(Constants.RET_CODE.FAILED);
            comResult.setMessage("用户名密码错误！");
        }
        return comResult;
    }

    /**
     * 审核商品
     */
    @PostMapping("/updateAdminStatus")
    public ComResult updateAdminStatus(@RequestBody UdStatusDTO udStatusDTO) {
        ComResult comResult = new ComResult();
        comResult.setCode(Constants.RET_CODE.FAILED);

        if (null == udStatusDTO) {
            log.info("===== 参数校验失败，入参未空！！=====");
        }
        if(null == udStatusDTO.getProductId()) {
            log.info("===== 未传入需要修改的商品id =====");
            return null;
        }
        if(null == udStatusDTO.getAdminStatus()) {
            comResult.setMessage("请选择审核状态！");
            return comResult;
        }

        boolean flag = adminService.updateAdminStatus(udStatusDTO);
        if(flag) {
            comResult.setCode(Constants.RET_CODE.SUCCESS);
            comResult.setMessage("修改成功！");
        } else {
            comResult.setMessage("修改失败！");
        }

        return comResult;
    }

    /**
     * 审核作品
     */
    @PostMapping("/updateOpusAdminStatus")
    public ComResult updateOpusAdminStatus(@RequestBody UdOpusAdminStatusDTO udStatusDTO) {
        ComResult comResult = new ComResult();
        comResult.setCode(Constants.RET_CODE.FAILED);

        if (null == udStatusDTO) {
            log.info("===== 参数校验失败，入参未空！！=====");
            comResult.setMessage("参数校验失败，入参未空！！");//TODO:delete
            return null;
        }
        if(null == udStatusDTO.getAdminStatus()) {
            comResult.setMessage("请选择审核状态！");
            return comResult;
        }
        if(null == udStatusDTO.getOpusId()) {
            log.info("===== 未传入需要修改的作品id =====");
            return null;
        }

        boolean flag = adminService.updateOpusAdminStatus(udStatusDTO);
        if(flag) {
            comResult.setCode(Constants.RET_CODE.SUCCESS);
            comResult.setMessage("修改成功！");
        } else {
            comResult.setMessage("修改失败！");
        }

        return comResult;
    }

}
